In some conventional cloud computing architectures, distributed computing systems distribute software tasks on virtual machines that run on physical servers. One advantage of using virtual machines is that system administrators can automate the provisioning of those virtual machines in an automated fashion to meet computing demands in a highly elastic fashion. Virtual machines, however, can each run a full copy of an operating system along with various software libraries used in hosting an application, which can lead to memory, bandwidth, and storage being used more than is strictly necessary. Containerization reduces some of the excess use of computing resources by eliminating the hypervisor and its virtual machines. Instead, a software container engine can deploy each application in its own container that runs on a single, shared instance of the operating system. A containerized application can be constructed of only the resources needed to run the application, resulting in more efficient use of the underlying resources.